08. For 循环
L3 06 For Loop
For 循环
Python 有两种类型的循环:
for
循环和
while
循环。
for
循环用来遍历
可迭代
对象。
可迭代对象 是每次可以返回其中一个元素的对象,包括字符串、列表和元组等序列类型,以及字典和文件等非序列类型。你还可以使用 迭代器和生成器 定义可迭代对象,我们将在这门课程的稍后阶段详细了解迭代器和生成器。
我们来了解下
for
循环的各个组成部分。请看下面的示例:
# iterable of cities
cities = ['new york city', 'mountain view', 'chicago', 'los angeles']
# for loop that iterates over the cities list
for city in cities:
print(city.title())
For 循环的组成部分
-
循环的第一行以关键字
for
开始,表示这是一个for
循环 -
然后是
iteration_variable in iterable
,表示正在被遍历的是可迭代的对象,并且用迭代变量表示当前正在被处理的可迭代对象的元素。在此示例中,迭代变量city
在第一次迭代时将是“new york city”,在第二次迭代时将是“mountain view。 -
for
循环头部始终以英文冒号:
结束。 -
for
循环头部之后的是在此for
循环的每次迭代时运行的缩进代码块。在此块中,我们可以使用迭代变量访问当前正在被处理的元素的值。
你可以随意命名迭代变量。常见模式是为迭代变量和可迭代对象指定相同的名称,但是分别使用单复数形式(例如 'city' 和 'cities)
创建和修改列表
除了从列表中提取信息之外,你还可以使用
for
循环创建和修改列表。你可以在
for
循环的每次迭代时向新列表中添加元素,创建一个列表。如下所示。
# Creating a new list
cities = ['new york city', 'mountain view', 'chicago', 'los angeles']
capitalized_cities = []
for city in cities:
capitalized_cities.append(city.title())
修改列表稍微复杂些,需要使用新的函数:
range()
。
range()
是一个内置函数,用于创建不可变的数字序列。它有三个参数,必须都为整数。
range(start=0, stop, step=1)
Start
是该序列的第一个数字,
stop
比该序列的最后一个数字大 1,
step
是该序列中每个数字之间的差。如果未指定的话,
start
默认为 0,
step
默认为 1(即上述
=0
和
=1
)。
-
如果你在
range()
的括号里指定一个参数,它将用作 'stop' 的值,另外两个参数使用默认值。
E.g.list(range(4))
返回[0, 1, 2, 3]
-
如果你在
range()
的括号里指定两个参数,它们将用作 'start' 和 'stop' 的值,'step' 将使用默认值。
E.g.list(range(2, 6))
返回[2, 3, 4, 5]
-
或者你可以为三个参数 'start、stop' 和 'step' 均指定一个值。
E.g.list(range(1, 10, 2))
返回[1, 3, 5, 7, 9]
注意,在这些示例中,我们将
range
封装在列表中。因为
range
本身的输出是一个
range
对象。我们可以通过将其转换为列表或在
for
循环中遍历它,查看
range
对象中的值集合。
我们可以使用
range
函数为
cities
列表中的每个值生成索引。这样我们便可以使用
cities[index]
访问列表中的元素,以便直接修改
cities
列表中的值。
cities = ['new york city', 'mountain view', 'chicago', 'los angeles']
for index in range(len(cities)):
cities[index] = cities[index].title()
虽然修改列表是
range
函数的一个用途,但是并非只有这一个用途。你将经常使用
range
和
for
循环重复某个操作一定的次数。
for i in range(3):
print("Hello!")